{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/chdb-io/chdb/blob/main/examples/chDB_demos.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "id": "Tlgiwv8L6YoY",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "fb12faa2-b916-4fb9-bc5d-a2e3695049d8"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Name: chdb\n",
            "Version: 0.14.1\n",
            "Summary: chDB is an in-process SQL OLAP Engine powered by ClickHouse\n",
            "Home-page: https://github.com/auxten/chdb\n",
            "Author: auxten\n",
            "Author-email: auxtenwpc@gmail.com\n",
            "License: Apache-2.0\n",
            "Location: /usr/local/lib/python3.10/dist-packages\n",
            "Requires: \n",
            "Required-by: \n"
          ]
        }
      ],
      "source": [
        "!pip install pandas pyarrow --upgrade >/dev/null 2>&1\n",
        "!pip install chdb --upgrade >/dev/null 2>&1\n",
        "!pip show chdb"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "GitHub: https://github.com/chdb-io/chdb"
      ],
      "metadata": {
        "id": "kAuhNawKRW1o"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Query on S3/HTTP/File/Another ClickHouse"
      ],
      "metadata": {
        "id": "-VZ2O6TvNE6Y"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "# Run chDB on HTTP (Parquet, CSV, JSON ...)\n",
        "!wget 'https://datasets.clickhouse.com/hits_compatible/athena_partitioned/hits_0.parquet' -q -O hits_0.parquet\n",
        "import chdb\n",
        "\n",
        "data = \"url('https://datasets.clickhouse.com/hits_compatible/athena_partitioned/hits_0.parquet')\"\n",
        "# data = \"file('hits_0.parquet', Parquet)\"\n",
        "# data = \"s3('xxx')\"\n",
        "\n",
        "sql = f\"\"\"SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID)\n",
        "                        FROM {data} GROUP BY RegionID ORDER BY c DESC LIMIT 10\"\"\"\n",
        "ret = chdb.query(sql, 'dataframe')\n",
        "print(ret)\n",
        "ret.plot()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 644
        },
        "id": "3t9pdSAD_y_k",
        "outputId": "0e2f8175-29c1-4104-9638-173066f256c5"
      },
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   RegionID  sum(AdvEngineID)       c  avg(ResolutionWidth)  uniqExact(UserID)\n",
            "0       229             38044  426435           1612.787187              27961\n",
            "1         2             12801  148193           1593.870891              10413\n",
            "2       208              2673   30614           1490.615111               3073\n",
            "3         1              1802   28577           1623.851699               1720\n",
            "4        34               508   14329           1592.897201               1428\n",
            "5        47              1041   13661           1637.851914                943\n",
            "6       158                78   13294           1576.340605               1110\n",
            "7         7              1166   11679           1627.319034                647\n",
            "8        42               642   11547           1625.601022                956\n",
            "9       184                30   10157           1614.693807                987\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<Axes: >"
            ]
          },
          "metadata": {},
          "execution_count": 2
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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/Pz80L9/fzz66KPYt28fcnNz5TY//fQTwsPDYWdnh/bt22P+/PkoLy8HAAgh8PLLLyMgIAB6vR6tWrXC008/La976dIljB8/Hm5ubnBwcMBdd92FEydOXPFY1HRaadq0abjtttvk5du3b8fixYvl3qzU1NQaT419//33CAkJgV6vR2BgIN59912r7QYGBuKNN97AI488AmdnZwQEBGDlypXy8kGDBiE5ORnp6enyvO3bt2POnDlWQSglJQWnTp3CoEGDanwPBQUFGD9+PJycnODn51etjttuuw2nTp3C9OnT5fdU2a+//oouXbrAyckJQ4YMQVpamtXy4cOHY82aNVc8pg2FQagZsdPYoatHVwA8PUZkq4QQMBUWKvKqb090QUEBZsyYgf379yMmJgYqlQqjRo2CyWTCuHHjsGbNGqttfvPNN2jVqpV8Kmb8+PE4d+4cYmNj8f3332PlypXIyMiw2seOHTvQu3fvWuvIyMjAunXroFar5dNnO3bswPjx4zF16lQkJiZixYoViI6Oxuuvvw7AHDYWLlyIFStW4MSJE/jxxx/RvXt3eZsTJ07E/v37sX79euzZswdCCNx9990oKyur1zGyWLx4MSIiIjBp0iSkpaUhLS0N/v7+1drFxcXh/vvvxwMPPIDDhw/j5ZdfxosvvljtlNW7776L3r174+DBg3jqqafw5JNPIjk5GQAwYMAAaLVa/P777wCAxMREFBUV4dFHH8XFixeRkpICwNxLZGdnh4iIiBprnjlzJrZv346ffvoJv/32G2JjY3HgwAF5+Q8//IA2bdrglVdekd+TRWFhId555x18/vnn+OOPP3D69Gk8++yzVtvv27cv/v33X6Smptb7eNaH5oZunRpcmFcYDmUeQnxGPIZ3GK50OUTUyERREZLDeymy7+ADcZAcHOrcvurpqk8//RReXl5ITEzE/fffj2nTpmHnzp1y8Pnqq68wduxYSJKEY8eOYevWrfjrr7/koPPxxx+jY8eOVts8deoUWrVqVW3fOTk5cHJyghAChYWFAICnn34ajo6OAID58+djzpw5mDBhAgCgffv2ePXVVzFr1iy89NJLOH36NHx9fREZGQmtVouAgAD07dsXAHDixAmsX78eu3btQv/+/QEAX375Jfz9/fHjjz9e0yk4FxcX6HQ6ODg4wNfX94rt3nvvPQwePBgvvvgi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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Query another ClickHouse server\n",
        "ret = chdb.query(\"\"\"SELECT\n",
        "    repo_name AS repo,\n",
        "    count() AS stars\n",
        "FROM remoteSecure('play.clickhouse.com', default, github_events, 'play', 'play')\n",
        "WHERE event_type = 'WatchEvent' AND created_at > today() -1\n",
        "GROUP BY repo_name\n",
        "ORDER BY stars DESC\n",
        "LIMIT 10\"\"\", \"dataframe\")\n",
        "print(ret)\n",
        "ret.plot(x='repo', kind='barh')"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 644
        },
        "id": "hP-4U8m7TkxW",
        "outputId": "fc35c512-6dd0-47c2-b505-175bac535887"
      },
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "                                   repo  stars\n",
            "0                       OpenBMB/ChatDev   1127\n",
            "1         KillianLucas/open-interpreter    860\n",
            "2  AUTOMATIC1111/stable-diffusion-webui    635\n",
            "3                   IceWhaleTech/CasaOS    495\n",
            "4                    jzhang38/TinyLlama    470\n",
            "5           zfdang/Android-Touch-Helper    416\n",
            "6      codecrafters-io/build-your-own-x    410\n",
            "7                         biomejs/biome    408\n",
            "8            opentffoundation/manifesto    402\n",
            "9                      tjy-gitnub/win12    386\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<Axes: ylabel='repo'>"
            ]
          },
          "metadata": {},
          "execution_count": 3
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAGdCAYAAADE/jZ4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACOMUlEQVR4nOzdd3yN9///8cdJIpEdIZUgBEkIYlMxY7RRarZW7Vkf1EypD2rPWtFdK7RmVdFaJRW1d5RK7Yh+GqVUiC3J7w+/XF9HIhKjcXjeb7frdsu5rvf1fr/e10nrvPIex5ScnJyMiIiIiIiIBbLK6gBEREREREQelxIaERERERGxWEpoRERERETEYimhERERERERi6WERkRERERELJYSGhERERERsVhKaERERERExGIpoREREREREYtlk9UBiIg8S0lJSfz55584OztjMpmyOhwRERHJgOTkZK5evUqePHmwskp/DEYJjYi80P7880+8vb2zOgwRERF5DGfPniVfvnzpllFCIyIvNGdnZ+De/xBdXFyyOBoRERHJiCtXruDt7W38O54eJTQi8kJLmWbm4uKihEZERMTCZGS6uDYFEBERERERi6WERkRERERELJYSGhERERERsVhaQyMiIiIikgnJycncvXuXxMTErA7FomXLlg1ra+snrkcJjYiIiIhIBt2+fZu4uDiuX7+e1aFYPJPJRL58+XBycnqiepTQiIiIiIhkQFJSEqdPn8ba2po8efJga2urL21+TMnJyVy4cIE//vgDPz+/JxqpUUIjIi+FEsPXY2XnkNVhyEssZkL9rA5BRJ7Q7du3SUpKwtvbGwcH/ZvypDw8PIiJieHOnTtPlNBoUwARERERkUywstJH6KfhaY1u6d0QERERERGLpYRGREREREQsltbQiDwgJiaGggULcuDAAUqXLv3M2hkxYgQrVqwgKirqmbWRokOHDly+fJkVK1Y8szaCg4MpXbo006dPf2ZtiIiIPK98Plj9r7andXn/RyM08tILDg6mb9++xmtvb2/i4uIoUaLEM203NDSUiIgI43WHDh1o3LjxM20zIzp27MjQoUMzfd/y5csZPXp0pu4ZO3YslStXxsHBATc3t1TXDx48SKtWrfD29sbe3p6AgADCwsIyHZuIiIik7Xn5/PEkNEIj8gBra2s8PT2feTtOTk5PvO/605aYmMiP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mly5ctGoUSO2bNnC6dOniYyMpHfv3vzxxx+cPn2awYMHs2PHDs6cOcNPP/3E8ePHjeTax8eH06dPExUVxd9//82tW7eoU6cOgYGBtG7dmv3797N7927atWtHjRo1Uk0XFBERkZeTEhoLN2HCBN566y3atm1L2bJlOXHiBOvXrydHjhxmZfr06UO5cuU4d+4cP/zwgzHSULJkSTZv3syxY8eoVq0aZcqU4cMPPyRPnjwZjsHGxoYZM2bw5ZdfkidPHho1apSpPvTu3Zv+/fszYMAAAgMDWbduHatWrcLPzw+4NxVq0aJF/P7775QsWZKJEycyZsyYTLUBMGDAANq2bUv79u0JCgrC2dmZJk2aGNetrKxYvHgx+/bto0SJEvTr14+PPvrosfqakfclPSdPnuTEiROEhIRkup8PGjp0KGXLliUkJITg4GA8PT3Ntph+WhwcHPjll1/Inz8/TZs2JSAggM6dO3Pz5k1cXFxwcHDg999/56233sLf359u3brRs2dPY4ODt956i7p161KzZk08PDxYtGgRJpOJlStXkiNHDqpXr06dOnUoVKgQS5Yseerxi4iIiGUyJWd2kYFYjMjISGrWrMk///xj7C4mlmHq1Kls3LiRNWvWZHUoFu/KlSu4urri3XcpVnYOWR2OSJpiJtTP6hBERJ4rKf9+x8fH4+Likm5ZjdCIPIfy5cvH4MGDszoMERERkeeedjkTeQ41b948q0MQERERsQiaciYiL7TMDFmLiIjI80FTzkRERERE5KWghEZERERERCyWEhoREREREbFYSmhERERERMRiKaERERERERGLpYRGREREREQslhIaERERERGxWEpoRERERETEYimhERERERERi6WERkRERERELJYSGhERERERsVhKaERERERExGIpoREREREREYulhEZERERERCyWEhoREREREbFYSmhERERERMRiKaERERERERGLpYRGREREREQslk1WByAi8m8oMXw9VnYOWR2GSLpiJtTP6hBERCyORmhERERERMRiKaERERERERGLpYRGREREREQslhIakUwIDg6mb9++D73u4+PD9OnT/7V4HiY8PBw3N7fHvv9R/YTnp68iIiLyctOmACJP0Z49e3B0dMzqMGjRogX16tXL1D2bN2+mTZs2nD17NkPln5e+ioiIyMtNCY3IU+Th4ZHVIQBg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7rvvMnXqVAYNGkTnzp2JiooiPDwc+L9RhQULFpAtWzYCAwOxs7Nj7969DB48mBYtWhijEA0aNGDq1KmUKVOGV199lRMnTjBs2DAaNGiAtbU158+fZ+/evanWnjwLOXLkoGnTprz//vu8/vrr5MuXL1WZ06dPExUVZXbOz88vVTk/Pz+WL19ubGQwbNiwxxrdSqveZcuWsX37dnLkyMHUqVP566+/KFas2BPXLSIiIi8GjdDIc23v3r1cv36dMWPG4OXlZRxNmzbNcB2zZ8/mn3/+oWzZsrRt25bevXvzyiuvZCqOggULsmzZMpYvX07JkiX5/PPPjV3OUqY32djYMHHiRCpWrEjJkiUZOXIkvXr1YtasWUY9Q4cOZcCAAQwdOpRixYrRuXNnQkJC+PLLLwH44YcfqFixIrly5cpUfI+rc+fO3L59+6GbAfTv358yZcqYHQcOHEhVburUqeTIkYPKlSvToEEDQkJCjO+qehJDhw6lbNmyhISEEBwcjKenp77oU0RERMyYki3t69jlpdCqVSusra355ptvsjqUhxo7dixffPHFU1103rBhQ6pWrcrAgQOfWp3p+frrr+nXrx9//vkntra2/0qb/7YrV67c2+2s71Ks7ByyOhyR50LMhPpZHYKISLpS/v2Oj4/HxcUl3bIaoZHnyt27dzly5Ag7duygePHiWR2Omc8++4w9e/Zw6tQpvv76az766KMnWneSlqpVq9KqVaunWmdarl+/zsmTJ5kwYQLvvvvuC5vMiIiIyItPCY08Vw4fPkz58uUpXrw43bt3z+pwzBw/fpxGjRpRrFgxRo8ezYABA8y+D+dpGDhw4L/yvSmTJk2iaNGieHp6Mnjw4GfenoiIiMizoilnIvJCy8yQtYiIiDwfNOVMREREREReCkpoRERERETEYimhERERERERi6WERkRERERELJYSGhERERERsVhKaERERERExGIpoREREREREYulhEZERERERCyWEhoREREREbFYSmhERERERMRiKaERERERERGLpYRGREREREQslhIaERERERGxWEpoRERERETEYimhERERERERi6WERkRERERELJYSGhERERERsVhKaERERERExGLZZHUAIiL/hhLD12Nl55DVYYhYnJgJ9bM6BBGRdGmERkRERERELJYSGhERERERsVhKaERERERExGIpoZGX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tiznzp3DxsYGX19fsyNXrlypzru7u+Pq6oqXl5dZO3fv3k31u/i4PDw8jHVDcG+a4fXr183KuLi40KJFC2bOnMmSJUv47rvv0lzzExAQwMGDB7l27Zpxbtu2bVhZWVGkSJEMxePu7m72DGxs7v2tI2UdTUREhLFWJjg4mEWLFnHs2DHjXO7cucmTJw+nTp1K9YwLFixo1tbOnTuNn1Oeacp0UA8PD65evWrWlyf93hoRERF5sWXZCM2PP/7IP//8Q+fOnVONYLz11lvMnj2b7t2706VLFwYMGICNjQ2BgYGcPXuWQYMGUalSJSpXrpzh9saNG0dERASvvfYakyZNokSJEpw+fZqhQ4dy586dh46+WFtbGyM7aX1Yzmg/MsNkMjF37lzq1KlDtWrVGDJkCEWLFiUhIYEffviBn376yVifExsby6VLl4iNjSUxMdH48Ofr64uTkxNw7/tsEhISOHfuHDdu3DDKFCtWDFtbWwCOHDnC7du3uXTpElevXjXK3L+bVMq5hIQELly4QFRUFLa2thQrVoy7d++ydu1aQkNDjfLh4eEkJiby6quv4uDgwDfffIO9vT0FChQA7u2c9ssvv9CyZUvs7OzIlSsXfn5+LFu2jO3bt5MjRw6mTp3KX3/9RbFixcyeUWxsLP379+fdd99l//79fPzxx0yZMiXN51mnTh2CgoJo3LgxkyZNwt/fnz///JPVq1fTpEmTh04j69OnDxMmTMDPz4+iRYsyderUp5ZMpqxzCQoKIjExkUGDBpmNoEydOhUvLy/KlCmDlZUV3377LZ6enmluCNG6dWuGDx9O+/btGTFiBBcuXOC9996jbdu25M6d+4nirF69OlevXuXHH39kwoQJwL2E5u2338bLy8vsjwojR46kd+/euLq6UrduXW7dusXevXv5559/6N+/v1Hu008/xc/Pj4CAAKZNm8Y///xDp06dAIzflf/+97/07t2bXbt2ZXrnQxEREXm5ZFlCM3v2bOrUqZPmdKy33nqLSZMm8euvvxIWFsaECRMYNGgQZ86cwdPTk9dee42xY8dm6vs8cubMyc6dOxk1ahTvvvsu586dw93dnTfeeINvvvnmod8tAxhT356kHyVLlsxwrAAVK1Zk7969jB07lq5du/L333/j5eVF5cqVzb6M8sMPPzTbRSplitqmTZuMv5536dLFbIOClDKnT582ds6qV68eZ86cSVXm/uk/909/27dvHwsXLqRAgQLExMSwefNmnJycKFu2rFHGzc2NCRMm0L9/fxITEwkMDOSHH34wvkMk5b0oXLgwt27dIjk5maFDh3Lq1ClCQkJwcHCgW7duNG7cmPj4eLPn065dO27cuEHFihWxtramT58+dOvWLc1naTKZWLNmDUOGDKFjx45cuHABT09Pqlevnu4H/gEDBhAXF0f79u2xsrKiU6dONGnSJFUsj2PKlCl07NiRatWqkSdPHsLCwsxGf5ydnZk0aRLHjx/H2tqaChUqsGbNmjR3vXNwcGD9+vX06dOHChUq4ODgwFtvvcXUqVOfOM4cOXIQGBjIX3/9ZWxSUb16dZKSkoz1Mym6dOmCg4MDH330Ee+//z6Ojo4EBgam+hLWCRMmMGHCBKKiovD19WXVqlXG2jR3d3e++eYb3n//fWbOnEnt2rUZMWLEQ99bEREREVOypa5Al+dK7969uXv3bprfOyKSla5cuXJvt7O+S7Gyc8jqcETkORYzoX5WhyAi/1/Kv9/x8fHpDi5AFm8KIC+OEiVKmO1eJSIiIiLyb1BCI0+FpgSJiIiISFZQQiMiL4XDI0MeOWQtIiIilidLv1hTRERERETkSSihERERERERi6WERkRERERELJYSGhERERERsVhKaERERERExGIpoREREREREYulhEZERERERCyWEhoREREREbFYSmhERERERMRiKaERERERERGLpYRGREREREQslhIaERERERGxWEpoRERERETEYimhERERERERi6WERkRERERELJYSGhERERERsVhKaERERERExGIpoREREREREYtlk9UBiIj8G0oMX4+VnUNWhyEiIg+ImVA/q0MQC6cRGhERERERsVhKaERERERExGIpoREREREREYulhOYFEBwcTN++fY3XPj4+TJ8+3XhtMplYsWIFADExMZhMJqKiov7VGCXj9B6JiIiIZJwSGgvQoUMHGjdubHZu2bJlZM+enSlTprB8+XJGjx6dobq8vb2Ji4ujRIkSTzXGB5Oq59GZM2ewt7cnISEhq0NJ1+O8RyNGjKB06dLPLqin6MGEW0RERORJaJczCzRr1ix69uzJF198QceOHTN1r7W1NZ6ens8osufbypUrqVmzJk5OTlkdSrqy8j26ffs2tra2//q9ltCeiIiIPJ80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mnXr1j1xUrNt2zYqV65Mjx49jHP3//X+afDw8ODcuXMkJycbH8TvX6vh7OyMj48PERER1KxZM9X9+/btIykpiSlTpmBldW9Q8cE1PnBvilT37t3p3r07gwcPZubMmbz33ntERkaSI0cOSpUqBYCLiwt58uRh27ZtxhQuuPcsKlasaFbnzp07qV69OgB3795l3759xrqOsmXL8t133+Hj44ONzeP9p/TKK6/wyiuvPNa997O1tTUbOUmJ79y5c9jY2KTagCEjHkxqd+7ciZ+fn9lI3YPKli3LkSNHzNY/ZTTWR90nIiIikhZNObMw3t7eREZGcv78eUJCQp54wbOfnx979+5l/fr1HDt2jGHDhrFnz57HquvChQtERUWZHX/99RfBwcFcuHCBSZMmcfLkST799FPWrl1rdu+IESOYMmUKM2bM4Pjx4+zfv5+PP/4YAF9fX+7cucPHH3/MqVOn+Prrr/niiy/M7u/bty/r16/n9OnT7N+/n02bNhEQEADAqlWrjOlmKd5//30mTpzIkiVLOHr0KB988AFRUVFma3jg3nS877//nt9//52ePXvyzz//GIvxe/bsyaVLl2jVqhV79uzh5MmTrF+/no4dO6b6wP6s+fj4cPr0aaKiovj777+5desWderUISgoiMaNG/PTTz8RExPD9u3bGTJkCHv37n1knbGxsfTv35+jR4+yaNEiPv7441TP50GDBg1i+/bt9OrVi6ioKI4fP87KlSvNFvf7+Pjwyy+/8L///c/YES4j94mIiIikRQmNBcqXLx+RkZH8/fffT5zUvPvuuzRt2pQWLVrw6quvcvHiRbPRmsxYuHAhZcqUMTtmzpxJQEAAn332GZ9++imlSpVi9+7dqaZZtW/fnunTp/PZZ59RvHhx3nzzTWPHsVKlSjF16lQmTpxIiRIlWLBgAePHjze7PzExkZ49exIQEEDdunXx9/c3NgxIK6Hp3bs3/fv3Z8CAAQQGBrJu3TpWrVqFn5+fWbkJEyYwYcIESpUqxdatW1m1ahW5cuUCMEZ5EhMTef311wkMDKRv3764ubkZI0n/lrfeeou6detSs2ZNPDw8WLRoESaTiTVr1lC9enU6duyIv78/LVu25MyZM+TOnfuRdbZr144bN25QsWJFevbsSZ8+fR65VXLJkiXZvHkzx44do1q1apQpU4YPP/zQ2IwB7k2zi4mJoXDhwsbanYzcJyIiIpIWU/KDixtEXiD79++nVq1aXLhwIdValvTExMRQsGBBDhw4kOo7dF4GwcHBlC5dmunTp2d1KE/sypUruLq64t13KVZ2DlkdjoiIPCBmQv2sDkGeQyn/fsfHx+Pi4pJuWY3QyAvt7t27fPzxx5lKZkRERETEcmhTAHmhVaxYMdVCfxERERF5cWjKmYi80DIzZC0iIiLPB005ExERERGRl4ISGhERERERsVhKaERERERExGIpoREREREREYulhEZERERERCyWEhoREREREbFYSmhERERERMRiKaERERERERGLpYRGREREREQslhIaERERERGxWEpoRERERETEYimhERERERERi6WERkRERERELJYSGhERERERsVhKaERERERExGIpoREREREREYulhEZERERERCyWEhoREREREbFYNlkdgIjIv6HE8PVY2TlkdRgiIiIvlJgJ9bM6BI3QiIiIiIiI5VJCIyIiIiIiFksJjYiIiIiIWCwlNCIvoZiYGEwmE1FRUVkdioiIiMgTUUIjFuns2bN06tSJPHnyYGtrS4ECBejTpw8XL17812Pp0KEDJpPJOHLmzEndunX59ddfzcqlXN+5c6fZ+Vu3bpEzZ05MJhORkZGpyptMJmxsbMifPz/9+/fn1q1bqWKYN28eVatWNV6fOHGCjh07ki9fPuzs7ChYsCCtWrVi7969T7XvwcHB9O3b1+xcSrKUcjg7O1O8eHF69uzJ8ePHn2r7IiIiIkpoxOKcOnWK8uXLc/z4cRYtWsSJEyf44osviIiIICgoiEuXLv3rMdWtW5e4uDji4uKIiIjAxsaGN998M1U5b29v5s6da3bu+++/x8nJKc16586dS1xcHKdPn+azzz7j66+/ZsyYManKrVy5koYNGwKwd+9eypUrx7Fjx/jyyy85cuQI33//PUWLFmXAgAFPobcZs3HjRuLi4jh48CDjxo0jOjqaUqVKERER8a/FICIiIi8+JTRicXr27ImtrS0//fQTNWrUIH/+/Lzxxhts3LiR//3vfwwZMgQAHx8fRo8eTatWrXB0dCRv3rx8+umnZnVdvnyZLl264OHhgYuLC7Vq1eLgwYPG9REjRlC6dGm+/vprfHx8cHV1pWXLlly9etWsHjs7Ozw9PfH09KR06dJ88MEHnD17lgsXLpiVa9++PYsX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tM3wE088IRUVFbJnzx7p0qVLh9xm+G7u3OVMhHm2RnFxsXh4eMiKFSvk+PHjsnHjRvH29pavvvpKqcnKyhJ/f3/Ztm2bHDlyRCZMmHDXrXLj4+OlqKhIDh06JNHR0R1im+F/S09Pl7CwMGXb5s2bN0tQUJC8/vrrSg3zvLf6+nopLy+X8vJyASDZ2dlSXl4uZ86cERH7ZGc2m0Wr1cr06dPFaDRKTk6OeHt7c9vm+2BDQ0Tt2kcffSQRERGiVqtl0KBBcvjwYUdPyekAuOtrw4YNSs21a9fkpZdekoCAAPH29paJEyfK+fPnbc5z+vRpGTNmjHh5eUlQUJDMnz9fbt682carcU7/bmiYZ+vs2LFD+vXrJxqNRmJiYuSzzz6zGbdarbJkyRLRarWi0Whk1KhRUl1dbVNz8eJFmTp1qvj4+Iivr6/MmDFD6uvr23IZTsFisci8efMkIiJCPD09pXv37rJ48WKbLYKZ573t37//rr8v09PTRcR+2VVWVsrQoUNFo9FIWFiYZGVltdUSXZKbyB1fDUtERERERORC+AwNERERERG5LDY0RERERETkstjQEBERERGRy2JDQ0RERERELosNDRERERERuSw2NERERERE5LLY0BARERERkctiQ0NERERERC6LDQ0REREREbksNjREREREROSy2NAQEREREZHLYkNDREREREQu6/8Au6LItTeZtWsAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Query pandas.Dataframe"
      ],
      "metadata": {
        "id": "2DoGKEIxM67u"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "hlfihpIB6_fI",
        "outputId": "261f5cbb-de63-4ab2-e3a0-46f8a39aa9aa"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   i  multiply(i, 2)         j\n",
              "0  4               8   b'four'\n",
              "1  3               6  b'three'\n",
              "2  2               4    b'two'\n",
              "3  1               2    b'one'"
            ]
          },
          "metadata": {},
          "execution_count": 4
        }
      ],
      "source": [
        "# Run on pandas.Dataframe and output Dataframe\n",
        "import chdb.dataframe as cdf\n",
        "import pandas as pd\n",
        "\n",
        "tbl = cdf.Table(dataframe=pd.DataFrame({'i':[1,2,3,4],'j':[\"one\", \"two\", \"three\", \"four\"]}))\n",
        "\n",
        "ret_tbl = tbl.query('SELECT * FROM __table__')\n",
        "\n",
        "## Query on result table\n",
        "ret_tbl.query('SELECT i, i*2, j FROM __table__ ORDER BY i desc')"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Stateful Query with session"
      ],
      "metadata": {
        "id": "Le-x6CEUNSm6"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Run chDB with session\n",
        "\n",
        "from chdb import session as chs\n",
        "\n",
        "## Create DB, Table, View in temp session, auto cleanup when session is deleted.\n",
        "sess = chs.Session()\n",
        "sess.query(\"CREATE DATABASE IF NOT EXISTS db_xxx ENGINE = Atomic\")\n",
        "sess.query(\"CREATE TABLE IF NOT EXISTS db_xxx.log_table_xxx (x String, y Int) ENGINE = Log;\")\n",
        "sess.query(\"INSERT INTO db_xxx.log_table_xxx VALUES ('a', 1), ('b', 3), ('c', 2), ('d', 5);\")\n",
        "sess.query(\n",
        "    \"CREATE VIEW db_xxx.view_xxx AS SELECT * FROM db_xxx.log_table_xxx LIMIT 4;\"\n",
        ")\n",
        "print(\"Select from view:\\n\")\n",
        "print(sess.query(\"SELECT * FROM db_xxx.view_xxx\", \"Pretty\"))\n",
        "\n",
        "sess.query(\"SELECT * FROM db_xxx.view_xxx\", \"dataframe\").plot()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 698
        },
        "id": "MA-h6YTK6Ox_",
        "outputId": "719403db-1683-4300-a9ff-0b50e2f4437b"
      },
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Select from view:\n",
            "\n",
            "┏━━━┳━━━┓\n",
            "┃ \u001b[1mx\u001b[0m ┃ \u001b[1my\u001b[0m ┃\n",
            "┡━━━╇━━━┩\n",
            "│ a │ 1 │\n",
            "├───┼───┤\n",
            "│ b │ 3 │\n",
            "├───┼───┤\n",
            "│ c │ 2 │\n",
            "├───┼───┤\n",
            "│ d │ 5 │\n",
            "└───┴───┘\n",
            "\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<Axes: >"
            ]
          },
          "metadata": {},
          "execution_count": 5
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "## Keep session data in a dir\n",
        "sess2 = chs.Session(\"ch_session\")\n",
        "sess2.query(\"CREATE FUNCTION chdb_version AS () -> '0.11.3'\")\n",
        "print(\"UDF chdb_version:\", sess2.query(\"SELECT chdb_version()\", \"CSV\"))\n",
        "\n",
        "print(\"Content of dir ch_session:\")\n",
        "!ls -l ch_session\n",
        "\n",
        "## Named session need cleanup,\n",
        "sess2.cleanup()\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "81yb37jEBsQU",
        "outputId": "63aac32f-c3c6-4d47-a3fc-d4aea2413af5"
      },
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "UDF chdb_version: \"0.11.3\"\n",
            "\n",
            "Content of dir ch_session:\n",
            "total 28\n",
            "drwxr-xr-x 3 root root 4096 Sep  5 02:58 data\n",
            "drwxr-xr-x 4 root root 4096 Sep  5 02:58 metadata\n",
            "drwxr-xr-x 2 root root 4096 Sep  5 02:58 metadata_dropped\n",
            "drwxr-xr-x 3 root root 4096 Sep  5 02:58 store\n",
            "drwxr-xr-x 2 root root 4096 Sep  5 02:58 tmp\n",
            "drwxr-xr-x 2 root root 4096 Sep  5 02:58 user_defined\n",
            "drwxr-xr-x 2 root root 4096 Sep  5 02:58 user_scripts\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Plot house price\n",
        "import chdb\n",
        "\n",
        "df = chdb.query(\"SELECT toYear(date::Date32) AS year, round(avg(price)) AS price \"\n",
        "                 \"FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/uk-house-prices/parquet/house_prices_20*.parquet') \"\n",
        "                 \"WHERE town = 'LONDON' GROUP BY year ORDER BY year\",\"Dataframe\")\n",
        "\n",
        "df.plot(x='year')"
      ],
      "metadata": {
        "id": "cClE96sFfK8k",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 483
        },
        "outputId": "49511b07-b6de-4062-ee03-d35d1a6ee992"
      },
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<Axes: xlabel='year'>"
            ]
          },
          "metadata": {},
          "execution_count": 7
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Query to ArrowTable\n",
        "import chdb\n",
        "\n",
        "res = chdb.query(\n",
        "   f\"SELECT town, district, count() AS c, round(avg(price)) AS price \"\n",
        "   f\"FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/uk-house-prices/csv/house_prices.csv.gz') \"\n",
        "   f\"GROUP BY town, district HAVING c >= 100 ORDER BY price DESC LIMIT 10\",\n",
        "   \"ArrowTable\")\n",
        "print(res)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "lOu3Mjfpjtth",
        "outputId": "adcc8eb7-1972-4778-a6b9-d833fc1b1515"
      },
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "pyarrow.Table\n",
            "town: string\n",
            "district: string\n",
            "c: uint64 not null\n",
            "price: double\n",
            "----\n",
            "town: [[\"LONDON\",\"LONDON\",\"LONDON\",\"VIRGINIA WATER\",\"LEATHERHEAD\",\"LONDON\",\"NORTHWOOD\",\"WINDSOR\",\"WINDLESHAM\",\"COBHAM\"]]\n",
            "district: [[\"CITY OF LONDON\",\"CITY OF WESTMINSTER\",\"KENSINGTON AND CHELSEA\",\"RUNNYMEDE\",\"ELMBRIDGE\",\"CAMDEN\",\"THREE RIVERS\",\"BRACKNELL FOREST\",\"SURREY HEATH\",\"ELMBRIDGE\"]]\n",
            "c: [[729,9605,6549,379,262,7399,150,111,232,925]]\n",
            "price: [[3212987,2888615,2447372,2115944,2085028,1619476,1493810,1360590,1323741,1307596]]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# chDB v0.13"
      ],
      "metadata": {
        "id": "3i8CEiTh22jC"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Join 2 DataFrames"
      ],
      "metadata": {
        "id": "rwjccINzqaFE"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import chdb.dataframe as cdf\n",
        "import pandas as pd\n",
        "# Join 2 DataFrames\n",
        "print(\"\\n# Join 2 DataFrames:\")\n",
        "df1 = pd.DataFrame({'a': [1, 2, 3], 'b': [\"one\", \"two\", \"three\"]})\n",
        "df2 = pd.DataFrame({'c': [1, 2, 3], 'd': [\"ONE\", \"TWO\", \"THREE\"]})\n",
        "ret_tbl = cdf.query(sql=\"select * from __tbl1__ t1 join __tbl2__ t2 on t1.a = t2.c\",\n",
        "                  tbl1=df1, tbl2=df2)\n",
        "print(ret_tbl)\n",
        "\n",
        "# Query on the DataFrame Table\n",
        "print(\"\\n# Query on the DataFrame Table:\")\n",
        "print(ret_tbl.query('select b, sum(a) from __table__ group by b'))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "-Wd3Abzt29vE",
        "outputId": "f866283f-08a0-46e2-c3e6-536260c858e8"
      },
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "# Join 2 DataFrames:\n",
            "   a         b  c         d\n",
            "0  1    b'one'  1    b'ONE'\n",
            "1  2    b'two'  2    b'TWO'\n",
            "2  3  b'three'  3  b'THREE'\n",
            "\n",
            "# Query on the DataFrame Table:\n",
            "          b  sum(a)\n",
            "0    b'two'       2\n",
            "1  b'three'       3\n",
            "2    b'one'       1\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Join DataFrame and Parquet"
      ],
      "metadata": {
        "id": "bdMr7UxHtunF"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df1 = pd.DataFrame({'a': [1, 2, 3], 'b': [\"one\", \"two\", \"three\"]})\n",
        "df2 = pd.DataFrame({'c': [1, 2, 3], 'd': [\"ONE\", \"TWO\", \"THREE\"]})\n",
        "# Save df2 to Parquet file\n",
        "df2.to_parquet('df2.parquet')\n",
        "\n",
        "print(\"\\n# Join DataFrame and Parquet:\")\n",
        "print(cdf.query(sql=\"select * from __tbl1__ t1 join __tbl2__ t2 on t1.a = t2.c\",\n",
        "                  tbl1=df1, tbl2=cdf.Table(parquet_path='df2.parquet')))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Qlue3jdzt01O",
        "outputId": "7542b712-612e-4614-ff0b-64c1242aa490"
      },
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "# Join DataFrame and Parquet:\n",
            "   a         b  c         d\n",
            "0  1    b'one'  1    b'ONE'\n",
            "1  2    b'two'  2    b'TWO'\n",
            "2  3  b'three'  3  b'THREE'\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Query Statistics"
      ],
      "metadata": {
        "id": "d8pjAns0q7cg"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Query read_rows, read_bytes, elapsed time\n",
        "data = \"file('hits_0.parquet', Parquet)\"\n",
        "sql = f\"\"\"SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID)\n",
        "                        FROM {data} GROUP BY RegionID ORDER BY c DESC\"\"\"\n",
        "res = chdb.query(sql)\n",
        "print(f\"\\nSQL read {res.rows_read()} rows, {res.bytes_read()} bytes, elapsed {res.elapsed()} seconds\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ZUOERbkerBNs",
        "outputId": "90fcdc2b-e877-4100-b18f-c998d5927e03"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "SQL read 1242 rows, 48438 bytes, elapsed 0.083294458 seconds\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# chDB v0.14"
      ],
      "metadata": {
        "id": "qypWsqogrU5c"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Python UDF"
      ],
      "metadata": {
        "id": "P9G5gyu4szQS"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from chdb.udf import chdb_udf\n",
        "from chdb import query\n",
        "\n",
        "@chdb_udf()\n",
        "def sum_udf(lhs, rhs):\n",
        "    return int(lhs) + int(rhs)\n",
        "\n",
        "print(query(\"select sum_udf(12,22)\"))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "oIHgork0rYOt",
        "outputId": "f19f35a2-07a1-45c6-f3e2-31feffe1317e"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\"34\"\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## with Session() as sess"
      ],
      "metadata": {
        "id": "9vT3dX1RxDsT"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "## Create DB, Table, View in temp session, auto cleanup outof `with` block.\n",
        "with chs.Session() as sess:\n",
        "  sess.query(\"CREATE DATABASE IF NOT EXISTS db_xxx ENGINE = Atomic\")\n",
        "  sess.query(\"CREATE TABLE IF NOT EXISTS db_xxx.log_table_xxx (x String, y Int) ENGINE = Log;\")\n",
        "  sess.query(\"INSERT INTO db_xxx.log_table_xxx VALUES ('a', 1), ('b', 3), ('c', 2), ('d', 5);\")\n",
        "  sess.query(\n",
        "      \"CREATE VIEW db_xxx.view_xxx AS SELECT * FROM db_xxx.log_table_xxx LIMIT 4;\"\n",
        "  )\n",
        "  print(\"Select from view:\\n\")\n",
        "  print(sess.query(\"SELECT * FROM db_xxx.view_xxx\", \"Pretty\"))\n",
        "\n",
        "  sess.query(\"SELECT * FROM db_xxx.view_xxx\", \"dataframe\").plot()"
      ],
      "metadata": {
        "id": "jDStm5CixKwb",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 680
        },
        "outputId": "732f0363-03d8-469e-dd05-844c141bb67f"
      },
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Select from view:\n",
            "\n",
            "┏━━━┳━━━┓\n",
            "┃ \u001b[1mx\u001b[0m ┃ \u001b[1my\u001b[0m ┃\n",
            "┡━━━╇━━━┩\n",
            "│ a │ 1 │\n",
            "├───┼───┤\n",
            "│ b │ 3 │\n",
            "├───┼───┤\n",
            "│ c │ 2 │\n",
            "├───┼───┤\n",
            "│ d │ 5 │\n",
            "└───┴───┘\n",
            "\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": [],
      "toc_visible": true,
      "include_colab_link": true
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}